	TITLE	'8086 META COMPILER CP/M-86'
	PAGEWIDTH 79
	NAME	'MAINPROG'
	EXTRN	MSG:NEAR,OPENIO:NEAR,CLOSEIO:NEAR,RNX:NEAR
	EXTRN	WNX:NEAR,STOP:NEAR,BREAD:NEAR,BWRITE:NEAR
	EXTRN	INITIAL:NEAR,ENDING:NEAR,STOP:NEAR,ATTACH:NEAR
	EXTRN	ASSOC:NEAR
DATA	DSEG
KA0EF	EQU	26
KA0HT	EQU	9
KA0QM	EQU	39
KA0EL	EQU	13
KA0NL	EQU	10
BA0AA	RB	1
BA0BB	RB	1
BA0BO	RB	80
BA0C0	RB	1
BA0C1	RB	1
BA0C2	RB	1
BA0C3	RB	1
BA0C9	RB	1
BA0CB	RB	1
BA0CC	RB	1
BA0CD	RB	1
BA0CE	RB	1
BA0CG	RB	1
BA0CL	RB	1
BA0CM	RB	1
BA0CP	RB	1
BA0CQ	RB	1
BA0CS	RB	1
BA0CT	RB	1
BA0CU	RB	1
BA0CV	RB	1
BA0CX	RB	1
BA0DD	RB	1
BA0DS	RB	10
BA0EE	RB	1
BA0EF	RB	1
BA0EL	RB	1
BA0F1	RB	128
BA0F2	RB	128
BA0FL	RB	1
BA0KA	RB	1
BA0KB	RB	1
BA0KC	RB	1
BA0KS	RB	6000
BA0LI	RB	1
BA0LL	RB	1
BA0MC	RB	3000
BA0MK	RB	1
BA0MN	RB	1
BA0ND	RB	1
BA0NL	RB	1
BA0NS	RB	80
BA0OS	RB	80
BA0PB	RB	1
BA0PI	RB	1
BA0PL	RB	1
BA0PM	RB	1
BA0PN	RB	1
BA0PO	RB	1
BA0QI	RB	1
BA0RC	RB	1
BA0RI	RB	80
BA0SD	RB	1
BA0WA	RB	1
BA0WB	RB	1
BA0X0	RB	1
BA0X1	RB	1
BA0X2	RB	1
BA0X3	RB	1
BA0X9	RB	1
BA0XA	RB	1
BA0XB	RB	1
BA0XC	RB	1
BA0XD	RB	1
BA0XE	RB	1
BA0XF	RB	1
BA0XG	RB	1
BA0XH	RB	1
BA0XI	RB	1
BA0XJ	RB	1
BA0XK	RB	1
BA0XL	RB	1
BA0XM	RB	1
BA0XN	RB	1
BA0XO	RB	1
BA0XP	RB	1
BA0XQ	RB	1
BA0XR	RB	1
BA0XS	RB	1
BA0XT	RB	1
BA0XU	RB	1
BA0XV	RB	1
BA0XW	RB	1
BA0XX	RB	1
BA0XY	RB	1
BA0XZ	RB	1
BA0YP	RB	1
BA0ZP	RB	1
BA0ZX	RB	1
WA000	RW	1
WA001	RW	1
WA003	RW	1
WA010	RW	1
WA016	RW	1
WA0AA	RW	1
WA0BB	RW	1
WA0BK	RW	1
WA0CC	RW	1
WA0DD	RW	1
WA0LB	RW	1
WA0LN	RW	1
WA0LT	RW	1000
WA0MB	RW	1
WA0MD	RW	1
WA0MF	RW	1
WA0MI	RW	3000
WA0ML	RW	1
WA0MM	RW	1
WA0MT	RW	1
WA0MX	RW	1
WA0MZ	RW	1
WA0NL	RW	1
WA0PC	RW	1
WA0PL	RW	1
WA0PR	RW	10
WA0PT	RW	1
WA0RN	RW	1
WA0SM	RW	1
WA0ST	RW	600
WA0TU	RW	1
WA0UU	RW	1
WA0XX	RW	1
WA0YS	RW	80
WA0YY	RW	1
WA0ZC	RW	1
WA0ZS	RW	80
WA0ZT	RW	1
BA0AC	RB	1
WA0AV	RW	1
IOCTRL	DSEG	COMMON
IAV	DW	0
BA0ER	DB	0
	CSEG
START:	CALL	INITIAL
	MOV	AX,IAV
	MOV	BA0AC,AL
	MOV	BA0EL,KA0EL
	MOV	BA0NL,KA0NL
	CALL	MSG
	DB	'METATERP '
	CALL	MSG
	DB	'Ver 1.2  '
	CALL	SA0CR
	CALL	MSG
	DB	'8086 VERS'
	CALL	MSG
	DB	'ION FOR C'
	CALL	MSG
	DB	'P/M-86   '
	CALL	SA0CR
	CALL	MSG
	DB	'COPYRIGHT'
	CALL	MSG
	DB	' 1984 A. '
	CALL	MSG
	DB	'L. BENDER'
	CALL	MSG
	DB	', M. D.  '
	CALL	SA0IN
	CALL	SA0CR
	CALL	SA0RC
	CALL	SA0LI
	MOV	WA0PC,0
LOC00:
	CALL	SA0GI
	MOV	BL,BA0C0
	MOV	BH,0
	MOV	AL,BA0RI[BX]
	MOV	BA0CC,AL
	MOV	AL,BA0CC
	JMP	XA0101
	RB	0-3
A0U100:	CMP	AL,BA0XL
	JZ	$+5
	JMP	A0U102
	MOV	AL,BA0PI
	CMP	AL,BA0C1
	MOV	AL,1
	JZ	$+4
	MOV	AL,0
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0103
	MOV	AL,BA0FL
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0104
	CALL	SA0LW
	INC	WA0SM
	JMP	IF0105
IF0104:
	MOV	AL,BA0PM
	MOV	BA0PL,AL
IF0105:
	JMP	IF0106
IF0103:
	MOV	BL,BA0C1
	MOV	BH,0
	MOV	AL,BA0RI[BX]
	MOV	BA0CC,AL
	MOV	AL,BA0CC
	JMP	XA0108
	RB	0-3
A0U107:	CMP	AL,BA0XM
	JZ	$+5
	JMP	A0U109
	MOV	BA0FL,0
	MOV	BA0BB,2
TW0110:
	MOV	AL,BA0BB
	CMP	AL,BA0PI
	LAHF
	AND	AH,1
	MOV	BA0AA,AH
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	BW0110
	MOV	BL,BA0BB
	MOV	BH,0
	MOV	AL,BA0RI[BX]
	MOV	BA0AA,AL
	MOV	BL,BA0PL
	MOV	BH,0
	MOV	AL,BA0NS[BX]
	MOV	BA0DD,AL
	MOV	AL,BA0DD
	CMP	AL,BA0AA
	MOV	AL,1
	JNZ	$+4
	MOV	AL,0
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0111
	JMP	LOC99
IF0111:
	INC	BA0BB
	CALL	SA0LA
	JMP	TW0110
BW0110:
	MOV	BA0FL,1
	CALL	SA0LB
	JMP	XA0108
	RB	0-0
A0U109:	CMP	AL,BA0XI
	JZ	$+5
	JMP	A0U112
	MOV	BA0FL,0
	MOV	BL,BA0PL
	MOV	BH,0
	MOV	AL,BA0NS[BX]
	MOV	BA0CC,AL
	MOV	BA0PO,0
	CALL	SA0ZA
TW0113:
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	BW0113
	MOV	AL,BA0CC
	MOV	BL,BA0PO
	MOV	BH,0
	MOV	BA0OS[BX],AL
	INC	BA0PO
	CALL	SA0LA
	MOV	BL,BA0PL
	MOV	BH,0
	MOV	AL,BA0NS[BX]
	MOV	BA0CC,AL
	CALL	SA0ZA
	MOV	AL,BA0AA
	MOV	BA0DD,AL
	CALL	SA0ZN
	MOV	AL,BA0DD
	OR	AL,BA0AA
	MOV	BA0AA,AL
	JMP	TW0113
BW0113:
	MOV	AL,BA0PO
	CMP	AL,BA0C0
	MOV	AL,1
	JZ	$+4
	MOV	AL,0
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0114
	JMP	LOC99
IF0114:
	CALL	SA0MS
	MOV	AX,WA0AA
	MOV	BL,BA0C0
	MOV	BH,0
	SHL	BX,1
	MOV	WA0PR[BX],AX
	MOV	BA0FL,1
	JMP	XA0108
	RB	0-0
A0U112:	CMP	AL,BA0XN
	JZ	$+5
	JMP	A0U115
	MOV	BA0FL,0
	MOV	BX,WA000
	MOV	WA0AA,BX
TW0116:
	MOV	BL,BA0PL
	MOV	BH,0
	MOV	AL,BA0NS[BX]
	MOV	BA0CC,AL
	CALL	SA0ZN
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	BW0116
	MOV	BA0FL,1
	MOV	AX,WA0AA
	IMUL	WA010
	MOV	WA0AA,AX
	MOV	AL,BA0CC
	SUB	AL,BA0X0
	MOV	BA0CC,AL
	MOV	BH,0
	MOV	BL,BA0CC
	MOV	WA0BB,BX
	MOV	AX,WA0AA
	ADD	AX,WA0BB
	MOV	WA0AA,AX
	CALL	SA0LA
	JMP	TW0116
BW0116:
	MOV	AX,WA0AA
	MOV	BL,BA0C0
	MOV	BH,0
	SHL	BX,1
	MOV	WA0PR[BX],AX
	JMP	XA0108
	RB	0-0
A0U115:	CMP	AL,BA0XH
	JZ	$+5
	JMP	A0U117
	MOV	BA0FL,0
	MOV	WA0AA,0
TW0118:
	MOV	BL,BA0PL
	MOV	BH,0
	MOV	AL,BA0NS[BX]
	MOV	BA0CC,AL
	CALL	SA0ZH
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	BW0118
	MOV	BA0FL,1
	MOV	AX,WA0AA
	IMUL	WA016
	MOV	WA0AA,AX
	MOV	BH,0
	MOV	BL,BA0CC
	MOV	WA0BB,BX
	MOV	AX,WA0AA
	ADD	AX,WA0BB
	MOV	WA0AA,AX
	CALL	SA0LA
	JMP	TW0118
BW0118:
	MOV	AX,WA0AA
	MOV	BL,BA0C0
	MOV	BH,0
	SHL	BX,1
	MOV	WA0PR[BX],AX
	JMP	XA0108
	RB	0-0
A0U117:	CMP	AL,BA0XQ
	JZ	$+5
	JMP	A0U119
	MOV	BL,BA0C2
	MOV	BH,0
	MOV	AL,BA0RI[BX]
	MOV	BA0DD,AL
	MOV	BL,BA0PL
	MOV	BH,0
	MOV	AL,BA0NS[BX]
	MOV	BA0CC,AL
	MOV	BA0PO,0
	MOV	AL,BA0CC
	CMP	AL,BA0DD
	MOV	AL,1
	JZ	$+4
	MOV	AL,0
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0120
	CALL	SA0LA
TW0121:
	MOV	BL,BA0PL
	MOV	BH,0
	MOV	AL,BA0NS[BX]
	MOV	BA0CC,AL
	MOV	AL,BA0NL
	CMP	AL,BA0CC
	MOV	AL,1
	JNZ	$+4
	MOV	AL,0
	MOV	BA0AA,AL
	MOV	AL,BA0DD
	CMP	AL,BA0CC
	MOV	AL,1
	JNZ	$+4
	MOV	AL,0
	MOV	BA0BB,AL
	MOV	AL,BA0AA
	AND	AL,BA0BB
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	BW0121
	MOV	AL,BA0CC
	MOV	BL,BA0PO
	MOV	BH,0
	MOV	BA0OS[BX],AL
	INC	BA0PO
	CALL	SA0LA
	JMP	TW0121
BW0121:
	CALL	SA0LA
	MOV	AL,BA0CC
	CMP	AL,BA0NL
	MOV	AL,1
	JZ	$+4
	MOV	AL,0
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0122
	INC	WA0LN
	MOV	BX,WA000
	MOV	WA0SM,BX
IF0122:
	MOV	BA0FL,1
	JMP	IF0123
IF0120:
	MOV	BA0FL,0
IF0123:
	JMP	XA0108
	RB	0-0
A0U119:
	MOV	AL,BA0CC
	CALL	WNX
	CALL	MSG
	DB	' NOT LEX!'
	CALL	SA0CR
XA0108:
IF0106:
	JMP	XA0101
	RB	0-0
A0U102:	CMP	AL,BA0XF
	JZ	$+5
	JMP	A0U124
	MOV	AL,BA0FL
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0125
	JMP	IF0126
IF0125:
	JMP	LOC20
IF0126:
	JMP	XA0101
	RB	0-0
A0U124:	CMP	AL,BA0XP
	JZ	$+5
	JMP	A0U127
	MOV	BA0BB,1
TW0128:
	MOV	AL,BA0BB
	CMP	AL,BA0PI
	LAHF
	AND	AH,1
	MOV	BA0AA,AH
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	BW0128
	MOV	BL,BA0BB
	MOV	BH,0
	MOV	AL,BA0RI[BX]
	MOV	BA0CC,AL
	MOV	AL,BA0CC
	MOV	BL,BA0PB
	MOV	BH,0
	MOV	BA0BO[BX],AL
	INC	BA0PB
	INC	BA0BB
	JMP	TW0128
BW0128:
	JMP	XA0101
	RB	0-0
A0U127:	CMP	AL,BA0XO
	JZ	$+5
	JMP	A0U129
	MOV	BA0BB,0
TW0130:
	MOV	AL,BA0BB
	CMP	AL,BA0PB
	LAHF
	AND	AH,1
	MOV	BA0AA,AH
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	BW0130
	MOV	BL,BA0BB
	MOV	BH,0
	MOV	AL,BA0BO[BX]
	MOV	BA0CC,AL
	INC	BA0BB
	MOV	BX, OFFSET BA0CC
	MOV	DX, OFFSET BA0F2
	CALL	BWRITE
	JMP	TW0130
BW0130:
	MOV	BA0PB,0
	MOV	AL,BA0PI
	CMP	AL,BA0C1
	MOV	AL,1
	JZ	$+4
	MOV	AL,0
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0131
	MOV	BX, OFFSET BA0EL
	MOV	DX, OFFSET BA0F2
	CALL	BWRITE
	MOV	BX, OFFSET BA0NL
	MOV	DX, OFFSET BA0F2
	CALL	BWRITE
IF0131:
	JMP	XA0101
	RB	0-0
A0U129:	CMP	AL,BA0XX
	JZ	$+5
	JMP	A0U132
	MOV	AL,BA0PI
	CMP	AL,BA0C1
	MOV	AL,1
	JZ	$+4
	MOV	AL,0
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0133
	MOV	AL,BA0FL
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0134
	JMP	IF0135
IF0134:
LOC98:
	CALL	MSG
	DB	'ERROR AT '
	CALL	MSG
	DB	'LINE NUM '
	MOV	BX,WA0LN
	MOV	WA0AA,BX
	CALL	SA0PN
	CALL	MSG
	DB	' SYMBOL  '
	MOV	BX,WA0SM
	MOV	WA0AA,BX
	CALL	SA0PN
	MOV	AL,BA0CB
	CALL	WNX
	CALL	SA0CR
TW0136:
	MOV	BL,BA0PL
	MOV	BH,0
	MOV	AL,BA0NS[BX]
	MOV	BA0CC,AL
	MOV	AL,BA0ZX
	CMP	AL,BA0CC
	MOV	AL,1
	JNZ	$+4
	MOV	AL,0
	MOV	BA0AA,AL
	MOV	AL,BA0C0
	CMP	AL,BA0CC
	MOV	AL,1
	JNZ	$+4
	MOV	AL,0
	MOV	BA0BB,AL
	MOV	AL,BA0AA
	AND	AL,BA0BB
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	BW0136
	MOV	AL,BA0CC
	CMP	AL,BA0NL
	MOV	AL,1
	JZ	$+4
	MOV	AL,0
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0137
	INC	WA0LN
	MOV	WA0SM,0
IF0137:
	CALL	SA0LA
	CALL	SA0LB
	JMP	TW0136
BW0136:
	MOV	AL,BA0CC
	CMP	AL,BA0C0
	MOV	AL,1
	JZ	$+4
	MOV	AL,0
	MOV	BA0BB,AL
	MOV	AL,BA0BB
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0138
	CALL	MSG
	DB	'END FILE '
	JMP	LOC21
IF0138:
	CALL	SA0LA
	CALL	SA0LB
	CALL	SA0LW
	MOV	BX,WA0ZC
	MOV	WA0PC,BX
	MOV	BX,WA0ZT
	MOV	WA0PT,BX
	MOV	BA0FL,1
IF0135:
	JMP	IF0139
IF0133:
	MOV	BL,BA0C1
	MOV	BH,0
	MOV	AL,BA0RI[BX]
	MOV	BA0CC,AL
	MOV	AL,BA0CC
	JMP	XA0141
	RB	0-3
A0U140:	CMP	AL,BA0XN
	JZ	$+5
	JMP	A0U142
	MOV	BX,WA0LN
	MOV	WA0AA,BX
	CALL	SA0WN
	JMP	XA0141
	RB	0-0
A0U142:	CMP	AL,BA0XO
	JZ	$+5
	JMP	A0U143
	MOV	BA0BB,0
TW0144:
	MOV	AL,BA0BB
	CMP	AL,BA0PB
	LAHF
	AND	AH,1
	MOV	BA0AA,AH
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	BW0144
	MOV	BL,BA0BB
	MOV	BH,0
	MOV	AL,BA0BO[BX]
	MOV	BA0CC,AL
	INC	BA0BB
	MOV	AL,BA0CC
	CALL	WNX
	JMP	TW0144
BW0144:
	CALL	SA0CR
	MOV	BA0PB,0
	JMP	XA0141
	RB	0-0
A0U143:	CMP	AL,BA0XM
	JZ	$+5
	JMP	A0U145
	MOV	BX,WA0PC
	MOV	WA0ZC,BX
	MOV	BX,WA0PT
	MOV	WA0ZT,BX
	MOV	BL,BA0C2
	MOV	BH,0
	MOV	AL,BA0RI[BX]
	MOV	BA0ZX,AL
	JMP	XA0141
	RB	0-0
A0U145:
XA0141:
IF0139:
	JMP	XA0101
	RB	0-0
A0U132:	CMP	AL,BA0XT
	JZ	$+5
	JMP	A0U146
	MOV	AL,BA0FL
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0147
	JMP	LOC20
IF0147:
	JMP	XA0101
	RB	0-0
A0U146:	CMP	AL,BA0XG
	JZ	$+5
	JMP	A0U148
	MOV	BL,BA0C1
	MOV	BH,0
	MOV	AL,BA0RI[BX]
	MOV	BA0WA,AL
	MOV	BL,BA0C2
	MOV	BH,0
	MOV	AL,BA0RI[BX]
	MOV	BA0WB,AL
	MOV	AX,WA0PT
	ADD	AX,WA003
	MOV	WA0PT,AX
	MOV	WA0AA,597
	MOV	AX,WA0AA
	CMP	AX,WA0PT
	MOV	AL,1
	JLE	$+4
	MOV	AL,0
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0149
	CALL	MSG
	DB	'STACK OVE'
	CALL	MSG
	DB	'R FLOW>>>'
	JMP	LOC98
IF0149:
	MOV	AX,WA0PC
	MOV	BX,WA0PT
	SHL	BX,1
	MOV	WA0ST[BX],AX
	MOV	AL,BA0WB
	MOV	AH,BA0WA
	MOV	WA0PC,AX
	MOV	BX,WA0PT
	MOV	WA0AA,BX
	INC	WA0AA
	MOV	AX,WA000
	MOV	BX,WA0AA
	SHL	BX,1
	MOV	WA0ST[BX],AX
	INC	WA0AA
	MOV	AX,WA000
	MOV	BX,WA0AA
	SHL	BX,1
	MOV	WA0ST[BX],AX
	JMP	XA0101
	RB	0-0
A0U148:	CMP	AL,BA0XR
	JZ	$+5
	JMP	A0U150
	MOV	BX,WA0PT
	SHL	BX,1
	MOV	AX,WA0ST[BX]
	MOV	WA0PC,AX
	MOV	AX,WA0PT
	CMP	AX,WA003
	LAHF
	ROL	AH,1
	AND	AH,1
	MOV	BA0AA,AH
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0151
	CALL	MSG
	DB	'STACK UND'
	CALL	MSG
	DB	'ERFLOW...'
	JMP	LOC98
IF0151:
	MOV	AX,WA0PT
	SUB	AX,WA003
	MOV	WA0PT,AX
	JMP	XA0101
	RB	0-0
A0U150:	CMP	AL,BA0XS
	JZ	$+5
	JMP	A0U152
	MOV	AL,BA0PI
	CMP	AL,BA0C1
	MOV	AL,1
	JZ	$+4
	MOV	AL,0
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0153
	MOV	BA0FL,1
	JMP	IF0154
IF0153:
	MOV	BL,BA0C1
	MOV	BH,0
	MOV	AL,BA0RI[BX]
	MOV	BA0CC,AL
	MOV	AL,BA0CC
	JMP	XA0156
	RB	0-3
A0U155:	CMP	AL,BA0XF
	JZ	$+5
	JMP	A0U157
	MOV	BA0FL,0
	JMP	XA0156
	RB	0-0
A0U157:	CMP	AL,BA0XC
	JZ	$+5
	JMP	A0U158
	MOV	AL,BA0C1
	SUB	AL,BA0FL
	MOV	BA0FL,AL
	JMP	XA0156
	RB	0-0
A0U158:
	CALL	MSG
	DB	'SET ERROR'
	CALL	SA0CR
XA0156:
IF0154:
	JMP	XA0101
	RB	0-0
A0U152:	CMP	AL,BA0XU
	JZ	$+5
	JMP	A0U159
	MOV	AL,BA0PI
	CMP	AL,BA0C1
	MOV	AL,1
	JZ	$+4
	MOV	AL,0
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0160
	MOV	BX,WA0PT
	MOV	WA0AA,BX
	INC	WA0AA
LOC10:
	MOV	BX,WA0AA
	SHL	BX,1
	MOV	AX,WA0ST[BX]
	MOV	WA0BB,AX
	MOV	AX,WA0BB
	CMP	AX,WA001
	LAHF
	ROL	AH,1
	AND	AH,1
	MOV	BA0AA,AH
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0161
	INC	WA0UU
	MOV	BX,WA0UU
	MOV	WA0BB,BX
	MOV	AX,WA0UU
	MOV	BX,WA0AA
	SHL	BX,1
	MOV	WA0ST[BX],AX
IF0161:
	MOV	BX,WA0BB
	MOV	WA0AA,BX
	MOV	AX,WA0AA
	MOV	BL,BA0C0
	MOV	BH,0
	SHL	BX,1
	MOV	WA0PR[BX],AX
	CALL	SA0WN
	JMP	IF0162
IF0160:
	JMP	LOC22
IF0162:
	JMP	XA0101
	RB	0-0
A0U159:	CMP	AL,BA0XC
	JZ	$+5
	JMP	A0U163
	MOV	BA0BB,0
TW0164:
	MOV	AL,BA0BB
	CMP	AL,BA0PO
	LAHF
	AND	AH,1
	MOV	BA0AA,AH
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	BW0164
	MOV	BL,BA0BB
	MOV	BH,0
	MOV	AL,BA0OS[BX]
	MOV	BA0CC,AL
	MOV	AL,BA0CC
	MOV	BL,BA0PB
	MOV	BH,0
	MOV	BA0BO[BX],AL
	INC	BA0PB
	INC	BA0BB
	JMP	TW0164
BW0164:
	JMP	XA0101
	RB	0-0
A0U163:	CMP	AL,BA0XV
	JZ	$+5
	JMP	A0U165
	MOV	AL,BA0PI
	CMP	AL,BA0C1
	MOV	AL,1
	JZ	$+4
	MOV	AL,0
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0166
	MOV	BX,WA0PT
	MOV	WA0AA,BX
	INC	WA0AA
	INC	WA0AA
	JMP	LOC10
	JMP	IF0167
IF0166:
	JMP	LOC22
IF0167:
	JMP	XA0101
	RB	0-0
A0U165:	CMP	AL,BA0XM
	JZ	$+5
	JMP	A0U168
	MOV	BL,BA0C1
	MOV	BH,0
	MOV	AL,BA0RI[BX]
	MOV	BA0CC,AL
	MOV	AL,BA0CC
	JMP	XA0170
	RB	0-3
A0U169:	CMP	AL,BA0XS
	JZ	$+5
	JMP	A0U171
	CALL	SA0MH
	JMP	XA0170
	RB	0-0
A0U171:	CMP	AL,BA0XP
	JZ	$+5
	JMP	A0U172
	CALL	SA0MP
	JMP	XA0170
	RB	0-0
A0U172:	CMP	AL,BA0XE
	JZ	$+5
	JMP	A0U173
	CALL	SA0ME
	MOV	AX,WA0AA
	MOV	BL,BA0C0
	MOV	BH,0
	SHL	BX,1
	MOV	WA0PR[BX],AX
	JMP	XA0170
	RB	0-0
A0U173:	CMP	AL,BA0XQ
	JZ	$+5
	JMP	A0U174
	CALL	SA0MS
	MOV	AX,WA0AA
	MOV	BL,BA0C0
	MOV	BH,0
	SHL	BX,1
	MOV	WA0PR[BX],AX
	JMP	XA0170
	RB	0-0
A0U174:	CMP	AL,BA0XC
	JZ	$+5
	JMP	A0U175
	CALL	SA0MC
	MOV	AX,WA0AA
	MOV	BL,BA0C0
	MOV	BH,0
	SHL	BX,1
	MOV	WA0PR[BX],AX
	JMP	XA0170
	RB	0-0
A0U175:	CMP	AL,BA0XD
	JZ	$+5
	JMP	A0U176
	CALL	SA0MD
	MOV	AX,WA0AA
	MOV	BL,BA0C0
	MOV	BH,0
	SHL	BX,1
	MOV	WA0PR[BX],AX
	JMP	XA0170
	RB	0-0
A0U176:	CMP	AL,BA0XI
	JZ	$+5
	JMP	A0U177
	MOV	BL,BA0C2
	MOV	BH,0
	MOV	AL,BA0RI[BX]
	MOV	BA0CC,AL
	CALL	SA0ZN
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0178
	MOV	AL,BA0CC
	SUB	AL,BA0X0
	MOV	BA0MK,AL
	JMP	IF0179
IF0178:
	MOV	BA0MK,2
IF0179:
	CALL	SA0MI
	JMP	XA0170
	RB	0-0
A0U177:
	CALL	MSG
	DB	'ILLEGAL M'
	CALL	MSG
	DB	'EM OPN>>>'
	CALL	SA0CR
XA0170:
	JMP	XA0101
	RB	0-0
A0U168:	CMP	AL,BA0XJ
	JZ	$+5
	JMP	A0U180
LOC20:
	MOV	BL,BA0C1
	MOV	BH,0
	MOV	AL,BA0RI[BX]
	MOV	BA0AA,AL
	MOV	BL,BA0C2
	MOV	BH,0
	MOV	AL,BA0RI[BX]
	MOV	BA0BB,AL
	MOV	AL,BA0BB
	MOV	AH,BA0AA
	MOV	WA0LB,AX
	MOV	BX,WA0LB
	SHL	BX,1
	MOV	AX,WA0LT[BX]
	MOV	WA0PC,AX
	JMP	XA0101
	RB	0-0
A0U180:	CMP	AL,BA0XE
	JZ	$+5
	JMP	A0U181
LOC21:
	MOV	DX, OFFSET BA0F1
	CALL	CLOSEIO
	MOV	DX, OFFSET BA0F2
	CALL	CLOSEIO
	MOV	BX,WA0MM
	MOV	WA0AA,BX
	CALL	SA0PN
	CALL	MSG
	DB	' MAX MEM '
	CALL	MSG
	DB	'USAGE.   '
	CALL	SA0CR
	CALL	MSG
	DB	'PROGRAMME'
	CALL	MSG
	DB	'D TERMINA'
	CALL	MSG
	DB	'TION     '
	CALL	SA0CR
	MOV	AL,0
	CALL	STOP
	JMP	XA0101
	RB	0-0
A0U181:
LOC22:
	MOV	BA0QI,0
	CALL	SA0FT
	CALL	SA0FI
	CALL	SA0ST
XA0101:
	JMP	LOC00
LOC99:
	MOV	BA0FL,0
	JMP	LOC00
	CALL	ENDING
	MOV	CL,0
	INT	224
SA0CK:
	MOV	AL,BA0C0
	CMP	AL,BA0ER
	MOV	AL,1
	JNZ	$+4
	MOV	AL,0
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0182
	CALL	MSG
	DB	'CANT OPEN'
	MOV	BX,WA0BK
	MOV	WA0AA,BX
	CALL	SA0PN
	CALL	SA0CR
	MOV	AL,1
	CALL	STOP
IF0182:
	RET
SA0CR:
	MOV	AL,BA0EL
	CALL	WNX
	MOV	AL,BA0NL
	CALL	WNX
	RET
SA0DS:
	MOV	AX,WA0AA
	CMP	AX,WA000
	LAHF
	ROL	AH,1
	AND	AH,1
	MOV	BA0AA,AH
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0183
	MOV	BA0BB,1
	MOV	AX,WA0AA
	NEG	AX
	MOV	WA0AA,AX
	JMP	IF0184
IF0183:
	MOV	BA0BB,0
IF0184:
	MOV	AX,WA000
	CMP	AX,WA0AA
	MOV	AL,1
	JZ	$+4
	MOV	AL,0
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0185
	MOV	AL,BA0C1
	MOV	BA0ND,AL
	MOV	AL,BA0X0
	MOV	BL,BA0C0
	MOV	BH,0
	MOV	BA0DS[BX],AL
	JMP	IF0186
IF0185:
	MOV	AL,BA0C0
	MOV	BA0ND,AL
TW0187:
	MOV	AX,WA000
	CMP	AX,WA0AA
	LAHF
	ROL	AH,1
	AND	AH,1
	MOV	BA0AA,AH
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	BW0187
	MOV	AX,WA0AA
	MOV	CX,WA010
	CWD
	JCXZ	$+4
	IDIV	CX
	MOV	WA0YY,AX
	MOV	AX,WA010
	IMUL	WA0YY
	MOV	WA0BB,AX
	MOV	AX,WA0AA
	SUB	AX,WA0BB
	MOV	WA0XX,AX
	MOV	BX,WA0YY
	MOV	WA0AA,BX
	MOV	AL,BYTE PTR WA0XX
	MOV	BA0AA,AL
	MOV	AL,BA0X0
	ADD	AL,BA0AA
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	MOV	BL,BA0ND
	MOV	BH,0
	MOV	BA0DS[BX],AL
	INC	BA0ND
	JMP	TW0187
BW0187:
IF0186:
	MOV	AL,BA0CM
	MOV	BL,BA0ND
	MOV	BH,0
	MOV	BA0DS[BX],AL
	MOV	AL,BA0BB
	ADD	AL,BA0ND
	MOV	BA0ND,AL
	RET
SA0FI:
	INC	BA0QI
	MOV	BL,BA0QI
	MOV	BH,0
	MOV	AL,BA0RI[BX]
	MOV	BA0CC,AL
	MOV	AL,BA0CC
	JMP	XA0189
	RB	0-3
A0U188:	CMP	AL,BA0XM
	JZ	$+5
	JMP	A0U190
	INC	BA0QI
	MOV	BL,BA0QI
	MOV	BH,0
	MOV	AL,BA0RI[BX]
	MOV	BA0CC,AL
	CALL	SA0ZN
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0191
	MOV	AL,BA0CC
	SUB	AL,BA0X0
	MOV	BA0BB,AL
	JMP	IF0192
IF0191:
LOC11:
	CALL	MSG
	DB	'INDEX TO '
	CALL	MSG
	DB	'MEM CELL '
	MOV	BA0BB,0
IF0192:
	MOV	AL,BA0BB
	CMP	AL,BA0MK
	LAHF
	AND	AH,1
	MOV	BA0AA,AH
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0193
	MOV	BH,0
	MOV	BL,BA0BB
	MOV	WA0AA,BX
	MOV	AX,WA0AA
	ADD	AX,WA0TU
	MOV	WA0AA,AX
	MOV	BX,WA0AA
	SHL	BX,1
	MOV	AX,WA0MI[BX]
	MOV	WA0TU,AX
	RET
	JMP	IF0194
IF0193:
	MOV	AL,BA0BB
	SUB	AL,BA0MK
	MOV	BA0BB,AL
	MOV	AL,BA0BB
	CMP	AL,BA0MK
	LAHF
	AND	AH,1
	MOV	BA0AA,AH
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0195
	MOV	BH,0
	MOV	BL,BA0BB
	MOV	WA0AA,BX
	MOV	AX,WA0TU
	ADD	AX,WA0AA
	MOV	WA0AA,AX
	MOV	BX,WA0AA
	MOV	AL,BA0MC[BX]
	MOV	BA0AA,AL
	MOV	BH,0
	MOV	BL,BA0AA
	MOV	WA0TU,BX
	JMP	IF0196
IF0195:
	JMP	LOC11
IF0196:
IF0194:
	JMP	XA0189
	RB	0-0
A0U190:	CMP	AL,BA0XS
	JZ	$+5
	JMP	A0U197
	MOV	AL,BYTE PTR WA0TU
	MOV	BA0AA,AL
	MOV	BL,BA0AA
	MOV	BH,0
	MOV	AL,BA0OS[BX]
	MOV	BA0BB,AL
	MOV	BH,0
	MOV	BL,BA0BB
	MOV	WA0TU,BX
	JMP	XA0189
	RB	0-0
A0U197:
	DEC	BA0QI
XA0189:
	RET
SA0FT:
	MOV	BL,BA0QI
	MOV	BH,0
	MOV	AL,BA0RI[BX]
	MOV	BA0CC,AL
	MOV	AL,BA0CC
	JMP	XA0199
	RB	0-3
A0U198:	CMP	AL,BA0XY
	JZ	$+5
	JMP	A0U200
	MOV	BL,BA0YP
	MOV	BH,0
	SHL	BX,1
	MOV	AX,WA0YS[BX]
	MOV	WA0TU,AX
	JMP	XA0199
	RB	0-0
A0U200:	CMP	AL,BA0CX
	JZ	$+5
	JMP	A0U201
	MOV	BL,BA0YP
	MOV	BH,0
	SHL	BX,1
	MOV	AX,WA0YS[BX]
	MOV	WA0TU,AX
	CALL	SA0PY
	JMP	XA0199
	RB	0-0
A0U201:	CMP	AL,BA0XZ
	JZ	$+5
	JMP	A0U202
	MOV	BL,BA0ZP
	MOV	BH,0
	SHL	BX,1
	MOV	AX,WA0ZS[BX]
	MOV	WA0TU,AX
	MOV	AL,BA0ZP
	CMP	AL,BA0C0
	MOV	AL,1
	JZ	$+4
	MOV	AL,0
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0203
	CALL	MSG
	DB	'Z STACKER'
	CALL	SA0CR
	MOV	BA0ZP,1
	MOV	BA0FL,0
IF0203:
	DEC	BA0ZP
	JMP	XA0199
	RB	0-0
A0U202:	CMP	AL,BA0XN
	JZ	$+5
	JMP	A0U204
	INC	BA0QI
	MOV	BL,BA0QI
	MOV	BH,0
	MOV	AL,BA0RI[BX]
	MOV	BA0AA,AL
	INC	BA0QI
	MOV	BL,BA0QI
	MOV	BH,0
	MOV	AL,BA0RI[BX]
	MOV	BA0BB,AL
	MOV	AL,BA0BB
	MOV	AH,BA0AA
	MOV	WA0TU,AX
	JMP	XA0199
	RB	0-0
A0U204:	CMP	AL,BA0XH
	JZ	$+5
	JMP	A0U205
	MOV	BL,BA0YP
	MOV	BH,0
	SHL	BX,1
	MOV	AX,WA0YS[BX]
	MOV	WA0TU,AX
	MOV	AX,WA0TU
	MOV	BA0AA,AH
	MOV	BA0BB,AL
	MOV	BH,0
	MOV	BL,BA0AA
	MOV	WA0TU,BX
	JMP	XA0199
	RB	0-0
A0U205:	CMP	AL,BA0XB
	JZ	$+5
	JMP	A0U206
	MOV	BH,0
	MOV	BL,BA0PO
	MOV	WA0TU,BX
	JMP	XA0199
	RB	0-0
A0U206:	CMP	AL,BA0XU
	JZ	$+5
	JMP	A0U207
	MOV	BX,WA0PT
	MOV	WA0AA,BX
LOC38:
	INC	WA0AA
	MOV	BX,WA0AA
	SHL	BX,1
	MOV	AX,WA0ST[BX]
	MOV	WA0TU,AX
	JMP	XA0199
	RB	0-0
A0U207:	CMP	AL,BA0XV
	JZ	$+5
	JMP	A0U208
	MOV	BX,WA0PT
	MOV	WA0AA,BX
	INC	WA0AA
	JMP	LOC38
	JMP	XA0199
	RB	0-0
A0U208:
	CALL	SA0ZN
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0209
	MOV	AL,BA0CC
	SUB	AL,BA0X0
	MOV	BA0AA,AL
	JMP	IF0210
IF0209:
	CALL	MSG
	DB	'ILLEGAL F'
	CALL	MSG
	DB	'ETCH OPN '
	CALL	SA0CR
	MOV	BA0AA,0
IF0210:
	MOV	BL,BA0AA
	MOV	BH,0
	SHL	BX,1
	MOV	AX,WA0PR[BX]
	MOV	WA0TU,AX
XA0199:
	RET
SA0GI:
	MOV	BA0PI,0
	MOV	BX,WA0PC
	MOV	AL,BA0KS[BX]
	MOV	BA0LI,AL
	INC	WA0PC
TW0211:
	MOV	AL,BA0PI
	CMP	AL,BA0LI
	LAHF
	AND	AH,1
	MOV	BA0AA,AH
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	BW0211
	MOV	BX,WA0PC
	MOV	AL,BA0KS[BX]
	MOV	BA0AA,AL
	INC	WA0PC
	MOV	AL,BA0AA
	MOV	BL,BA0PI
	MOV	BH,0
	MOV	BA0RI[BX],AL
	INC	BA0PI
	JMP	TW0211
BW0211:
	RET
SA0IN:
	MOV	BA0KB,0
	MOV	BA0KC,0
	MOV	BA0ZX,0
	MOV	BA0YP,0
	MOV	BA0ZP,0
	MOV	BA0C0,0
	MOV	BA0FL,0
	MOV	BA0PI,0
	MOV	BA0PB,0
	MOV	BA0PO,0
	MOV	BA0PN,0
	MOV	WA0ZC,0
	MOV	WA0ZT,0
	MOV	WA000,0
	MOV	WA0PC,0
	MOV	WA0PT,0
	MOV	WA0LB,0
	MOV	WA0UU,0
	MOV	WA0SM,0
	MOV	WA0NL,0
	MOV	BA0C1,1
	MOV	BA0C2,2
	MOV	BA0MK,2
	MOV	WA001,1
	MOV	WA0LN,1
	MOV	BA0C3,3
	MOV	WA003,3
	MOV	BA0C9,9
	MOV	BA0CV,25
	MOV	BA0EL,KA0EL
	MOV	BA0NL,KA0NL
	MOV	BA0EF,KA0EF
	MOV	WA010,10
	MOV	WA016,16
	MOV	BA0SD,80
	MOV	BA0MN,79
	MOV	BA0XA,'A'
	MOV	BA0XB,'B'
	MOV	BA0XC,'C'
	MOV	BA0XD,'D'
	MOV	BA0XE,'E'
	MOV	BA0XF,'F'
	MOV	BA0XG,'G'
	MOV	BA0XH,'H'
	MOV	BA0XI,'I'
	MOV	BA0XJ,'J'
	MOV	BA0XK,'K'
	MOV	BA0XL,'L'
	MOV	BA0XM,'M'
	MOV	BA0XN,'N'
	MOV	BA0XO,'O'
	MOV	BA0XP,'P'
	MOV	BA0XQ,'Q'
	MOV	BA0XR,'R'
	MOV	BA0XS,'S'
	MOV	BA0XT,'T'
	MOV	BA0XU,'U'
	MOV	BA0XV,'V'
	MOV	BA0XW,'W'
	MOV	BA0XX,'X'
	MOV	BA0XY,'Y'
	MOV	BA0XZ,'Z'
	MOV	BA0X0,'0'
	MOV	BA0X1,'1'
	MOV	BA0X2,'2'
	MOV	BA0X3,'3'
	MOV	BA0X9,'9'
	MOV	BA0CB,' '
	MOV	BA0CX,'!'
	MOV	BA0CS,'*'
	MOV	BA0CM,'-'
	MOV	BA0CP,'+'
	MOV	BA0CG,'>'
	MOV	BA0CU,'='
	MOV	BA0CL,'<'
	MOV	BA0CT,KA0HT
	MOV	BA0CE,'/'
	MOV	BA0CD,'.'
	MOV	BA0CQ,KA0QM
	MOV	WA0BK,3
	MOV	AL,3
	MOV	BX, OFFSET WA0BK
	CALL	ATTACH
	MOV	DX,OFFSET BA0F2
	MOV	BX,OFFSET BA0XW
	MOV	SI,OFFSET WA0BK
	CALL	OPENIO
	CALL	SA0MI
	RET
SA0LA:
	MOV	AL,BA0PL
	CMP	AL,BA0MN
	MOV	AL,1
	JZ	$+4
	MOV	AL,0
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0212
	MOV	BA0PL,0
	JMP	IF0213
IF0212:
	INC	BA0PL
IF0213:
	RET
SA0LB:
TW0214:
	MOV	AL,BA0PM
	CMP	AL,BA0PL
	MOV	AL,1
	JNZ	$+4
	MOV	AL,0
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	BW0214
	CALL	SA0KG
	MOV	AL,BA0C0
	CMP	AL,BA0ER
	MOV	AL,1
	JNZ	$+4
	MOV	AL,0
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0215
	MOV	BA0CC,0
IF0215:
	MOV	AL,BA0CC
	MOV	BL,BA0PM
	MOV	BH,0
	MOV	BA0NS[BX],AL
	MOV	AL,BA0PM
	CMP	AL,BA0MN
	MOV	AL,1
	JZ	$+4
	MOV	AL,0
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0216
	MOV	BA0PM,0
	JMP	IF0217
IF0216:
	INC	BA0PM
IF0217:
	JMP	TW0214
BW0214:
	RET
SA0LI:
	MOV	BA0PM,0
	MOV	BA0PL,0
	MOV	BA0BB,0
TW0218:
	MOV	AL,BA0BB
	CMP	AL,BA0MN
	MOV	AL,0
	JNBE	$+4
	MOV	AL,1
	MOV	BA0AA,AL
	MOV	AL,BA0ER
	CMP	AL,BA0C0
	MOV	AL,1
	JZ	$+4
	MOV	AL,0
	MOV	BA0CC,AL
	MOV	AL,BA0AA
	AND	AL,BA0CC
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	BW0218
	CALL	SA0KG
	MOV	AL,BA0CC
	MOV	BL,BA0BB
	MOV	BH,0
	MOV	BA0NS[BX],AL
	INC	BA0BB
	JMP	TW0218
BW0218:
	RET
SA0LW:
	MOV	BL,BA0PL
	MOV	BH,0
	MOV	AL,BA0NS[BX]
	MOV	BA0CC,AL
TW0219:
	MOV	AL,BA0CC
	CMP	AL,BA0NL
	MOV	AL,1
	JZ	$+4
	MOV	AL,0
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0220
	INC	WA0LN
	MOV	WA0SM,0
IF0220:
	MOV	AL,BA0CC
	CMP	AL,BA0CB
	MOV	AL,1
	JZ	$+4
	MOV	AL,0
	MOV	BA0BB,AL
	MOV	AL,BA0AA
	OR	AL,BA0BB
	MOV	BA0AA,AL
	MOV	AL,BA0CC
	CMP	AL,BA0CT
	MOV	AL,1
	JZ	$+4
	MOV	AL,0
	MOV	BA0BB,AL
	MOV	AL,BA0AA
	OR	AL,BA0BB
	MOV	BA0AA,AL
	MOV	AL,BA0CC
	CMP	AL,BA0EL
	MOV	AL,1
	JZ	$+4
	MOV	AL,0
	MOV	BA0BB,AL
	MOV	AL,BA0BB
	OR	AL,BA0AA
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	BW0219
	CALL	SA0LA
	MOV	BL,BA0PL
	MOV	BH,0
	MOV	AL,BA0NS[BX]
	MOV	BA0CC,AL
	JMP	TW0219
BW0219:
	CALL	SA0LB
	RET
SA0MC:
	MOV	BH,0
	MOV	BL,BA0MK
	MOV	WA0AA,BX
	MOV	AX,WA0MT
	SUB	AX,WA0AA
	MOV	WA0MT,AX
	CALL	SA0MO
	MOV	BX,WA0MT
	MOV	WA0AA,BX
	CALL	SA0MZ
	RET
SA0MD:
	MOV	BH,0
	MOV	BL,BA0MK
	MOV	WA0AA,BX
	MOV	AX,WA0MT
	ADD	AX,WA0AA
	MOV	WA0MT,AX
	MOV	AX,WA0MD
	CMP	AX,WA0MT
	LAHF
	ROL	AH,1
	AND	AH,1
	MOV	BA0AA,AH
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0221
	CALL	MSG
	DB	'DESTROY C'
	CALL	MSG
	DB	'ELL ERROR'
	CALL	SA0CR
IF0221:
	MOV	BX,WA0MT
	MOV	WA0AA,BX
	RET
SA0ME:
	CALL	SA0ML
	MOV	AX,WA000
	CMP	AX,WA0AA
	MOV	AL,0
	JZ	$+4
	MOV	AL,1
	MOV	BA0EE,AL
	MOV	AL,BA0EE
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0222
	RET
IF0222:
	MOV	AX,WA0MF
	MOV	BX,WA0BB
	SHL	BX,1
	MOV	WA0MI[BX],AX
TW0223:
	MOV	AL,BA0CC
	MOV	BX,WA0MF
	MOV	BA0MC[BX],AL
	MOV	AX,WA0MX
	MOV	BX,WA0MF
	SHL	BX,1
	MOV	WA0MI[BX],AX
	INC	WA0MF
	CALL	SA0MO
	MOV	AL,BA0C0
	CMP	AL,BA0CC
	MOV	AL,1
	JNZ	$+4
	MOV	AL,0
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	BW0223
	INC	BA0BB
	MOV	BL,BA0BB
	MOV	BH,0
	MOV	AL,BA0OS[BX]
	MOV	BA0CC,AL
	JMP	TW0223
BW0223:
	MOV	BX,WA0MF
	MOV	WA0AA,BX
	MOV	BH,0
	MOV	BL,BA0MK
	MOV	WA0DD,BX
	MOV	AX,WA0DD
	ADD	AX,WA0MF
	MOV	WA0MF,AX
	CALL	SA0MO
	CALL	SA0MZ
	RET
SA0MH:
	MOV	AX,WA0MB
	MOV	BX,WA0MF
	SHL	BX,1
	MOV	WA0MI[BX],AX
	MOV	BX,WA0MF
	MOV	WA0MB,BX
	MOV	AX,WA0MF
	ADD	AX,WA0ML
	MOV	WA0MF,AX
	MOV	AL,BA0C0
	MOV	BX,WA0MF
	MOV	BA0MC[BX],AL
	MOV	AX,WA000
	MOV	BX,WA0MF
	SHL	BX,1
	MOV	WA0MI[BX],AX
	RET
SA0MI:
	MOV	WA0MB,0
	MOV	WA0MM,0
	MOV	WA0MD,3000
	MOV	BX,WA0MD
	MOV	WA0MT,BX
	MOV	WA0ML,1
	MOV	AX,WA0MB
	ADD	AX,WA0ML
	MOV	WA0MF,AX
	MOV	WA0MX,0
	MOV	AX,WA000
	MOV	BX,WA0MB
	SHL	BX,1
	MOV	WA0MI[BX],AX
	MOV	AL,BA0C0
	MOV	BX,WA0MF
	MOV	BA0MC[BX],AL
	MOV	AX,WA000
	MOV	BX,WA0MF
	SHL	BX,1
	MOV	WA0MI[BX],AX
	RET
SA0ML:
	MOV	AX,WA0MB
	ADD	AX,WA0ML
	MOV	WA0BB,AX
	MOV	BA0BB,0
TW0224:
	MOV	BL,BA0BB
	MOV	BH,0
	MOV	AL,BA0OS[BX]
	MOV	BA0CC,AL
	MOV	BX,WA0BB
	MOV	AL,BA0MC[BX]
	MOV	BA0DD,AL
	MOV	AL,BA0CC
	CMP	AL,BA0DD
	MOV	AL,1
	JZ	$+4
	MOV	AL,0
	MOV	BA0EE,AL
	MOV	AL,BA0EE
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0225
	MOV	AL,BA0CC
	CMP	AL,BA0C0
	MOV	AL,1
	JZ	$+4
	MOV	AL,0
	MOV	BA0EE,AL
	MOV	AL,BA0EE
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0226
	MOV	AX,WA0BB
	ADD	AX,WA001
	MOV	WA0AA,AX
	JMP	LOC77
IF0226:
	INC	WA0BB
	INC	BA0BB
	JMP	IF0227
IF0225:
	MOV	BX,WA0BB
	SHL	BX,1
	MOV	AX,WA0MI[BX]
	MOV	WA0AA,AX
	MOV	AX,WA0MX
	CMP	AX,WA0AA
	MOV	AL,1
	JZ	$+4
	MOV	AL,0
	MOV	BA0EE,AL
	MOV	AL,BA0EE
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0228
	MOV	WA0AA,0
	JMP	LOC77
IF0228:
	MOV	BX,WA0AA
	MOV	WA0BB,BX
IF0227:
	MOV	AX,WA0BB
	CMP	AX,WA0MF
	LAHF
	ROL	AH,1
	AND	AH,1
	MOV	BA0EE,AH
	MOV	AL,BA0EE
	TEST	AL,AL
	JNZ	$+5
	JMP	BW0224
	JMP	TW0224
BW0224:
	MOV	WA0AA,0
LOC77:
	RET
SA0MO:
	MOV	AX,WA0MT
	CMP	AX,WA0MF
	LAHF
	ROL	AH,1
	AND	AH,1
	MOV	BA0AA,AH
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0229
	CALL	MSG
	DB	'OUT OF ME'
	CALL	MSG
	DB	'MORY ERR.'
	MOV	AL,3
	CALL	STOP
IF0229:
	MOV	AX,WA0MM
	CMP	AX,WA0MF
	LAHF
	ROL	AH,1
	AND	AH,1
	MOV	BA0AA,AH
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0230
	MOV	BX,WA0MF
	MOV	WA0MM,BX
IF0230:
	RET
SA0MP:
	MOV	AX,WA000
	CMP	AX,WA0MB
	MOV	AL,0
	JZ	$+4
	MOV	AL,1
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0231
	MOV	BX,WA0MB
	MOV	WA0MF,BX
	MOV	BX,WA0MB
	SHL	BX,1
	MOV	AX,WA0MI[BX]
	MOV	WA0MB,AX
	JMP	IF0232
IF0231:
	MOV	BX,WA0ML
	MOV	WA0MF,BX
	MOV	AL,BA0C0
	MOV	BX,WA0MF
	MOV	BA0MC[BX],AL
	MOV	AX,WA000
	MOV	BX,WA0MF
	SHL	BX,1
	MOV	WA0MI[BX],AX
IF0232:
	RET
SA0MS:
	MOV	AL,BA0C0
	MOV	BL,BA0PO
	MOV	BH,0
	MOV	BA0OS[BX],AL
	MOV	BX,WA0MB
	MOV	WA0MZ,BX
TW0233:
	CALL	SA0ML
	MOV	AX,WA000
	CMP	AX,WA0AA
	MOV	AL,1
	JZ	$+4
	MOV	AL,0
	MOV	BA0EE,AL
	MOV	BX,WA0MB
	SHL	BX,1
	MOV	AX,WA0MI[BX]
	MOV	WA0MB,AX
	MOV	AX,WA000
	CMP	AX,WA0MB
	MOV	AL,0
	JZ	$+4
	MOV	AL,1
	MOV	BA0DD,AL
	MOV	AL,BA0EE
	AND	AL,BA0DD
	MOV	BA0CC,AL
	MOV	AL,BA0CC
	TEST	AL,AL
	JNZ	$+5
	JMP	BW0233
	JMP	TW0233
BW0233:
	MOV	BX,WA0MZ
	MOV	WA0MB,BX
	RET
SA0MZ:
	MOV	BA0BB,0
	MOV	BX,WA0AA
	MOV	WA0DD,BX
TW0234:
	MOV	AL,BA0BB
	CMP	AL,BA0MK
	LAHF
	AND	AH,1
	MOV	BA0AA,AH
	INC	BA0BB
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	BW0234
	MOV	AL,BA0C0
	MOV	BX,WA0DD
	MOV	BA0MC[BX],AL
	MOV	AX,WA000
	MOV	BX,WA0DD
	SHL	BX,1
	MOV	WA0MI[BX],AX
	INC	WA0DD
	JMP	TW0234
BW0234:
	RET
SA0PN:
	CALL	SA0DS
TW0235:
	MOV	BH,0
	MOV	BL,BA0ND
	MOV	WA0BB,BX
	MOV	AX,WA000
	CMP	AX,WA0BB
	LAHF
	ROL	AH,1
	AND	AH,1
	MOV	BA0AA,AH
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	BW0235
	DEC	BA0ND
	MOV	BL,BA0ND
	MOV	BH,0
	MOV	AL,BA0DS[BX]
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	CALL	WNX
	JMP	TW0235
BW0235:
	MOV	AL,BA0CB
	CALL	WNX
	RET
SA0PY:
	MOV	AL,BA0YP
	CMP	AL,BA0C0
	MOV	AL,1
	JZ	$+4
	MOV	AL,0
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0236
	CALL	MSG
	DB	'Y STACKER'
	CALL	SA0CR
	MOV	AL,BA0C1
	MOV	BA0YP,AL
	MOV	BA0FL,0
IF0236:
	DEC	BA0YP
	RET
SA0RA:
	MOV	AL,BA0CC
	MOV	BL,BA0C0
	MOV	BH,0
	MOV	BA0OS[BX],AL
	MOV	BA0PO,1
TW0237:
	CALL	SA0KG
	CALL	SA0ZA
	MOV	AL,BA0AA
	MOV	BA0DD,AL
	CALL	SA0ZN
	MOV	AL,BA0AA
	OR	AL,BA0DD
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	BW0237
	MOV	AL,BA0CC
	MOV	BL,BA0PO
	MOV	BH,0
	MOV	BA0OS[BX],AL
	INC	BA0PO
	JMP	TW0237
BW0237:
	MOV	AL,BA0CC
	CMP	AL,BA0NL
	MOV	AL,1
	JZ	$+4
	MOV	AL,0
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0238
	JMP	IF0239
IF0238:
TW0240:
	CALL	SA0KG
	MOV	AL,BA0NL
	CMP	AL,BA0CC
	MOV	AL,1
	JNZ	$+4
	MOV	AL,0
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	BW0240
	JMP	TW0240
BW0240:
IF0239:
	RET
SA0RC:
	MOV	DX, OFFSET BA0F1
	CALL	CLOSEIO
	MOV	WA0BK,1
	MOV	AL,1
	MOV	BX, OFFSET WA0BK
	CALL	ATTACH
	MOV	DX,OFFSET BA0F1
	MOV	BX,OFFSET BA0XR
	MOV	SI,OFFSET WA0BK
	CALL	OPENIO
	CALL	SA0CK
	MOV	WA0PC,1
	MOV	BA0LL,0
	MOV	WA0PL,0
TW0241:
	MOV	AL,BA0AA
	MOV	BA0AA,AL
LOC67:
	MOV	BX, OFFSET BA0RC
	MOV	DX, OFFSET BA0F1
	CALL	BREAD
	MOV	AL,BA0RC
	CMP	AL,BA0EL
	MOV	AL,1
	JZ	$+4
	MOV	AL,0
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0242
	JMP	LOC67
IF0242:
LOC33:
	MOV	AL,BA0ER
	CMP	AL,BA0C0
	MOV	AL,1
	JZ	$+4
	MOV	AL,0
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	BW0241
	MOV	AL,BA0RC
	JMP	XA0244
	RB	0-3
A0U243:	CMP	AL,BA0CE
	JZ	$+5
	JMP	A0U245
	CALL	SA0KG
	MOV	AL,BA0CC
	CMP	AL,BA0CM
	MOV	AL,1
	JZ	$+4
	MOV	AL,0
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0246
	CALL	SA0KG
	CALL	SA0RN
	MOV	AX,WA0RN
	NEG	AX
	MOV	WA0RN,AX
	JMP	LOC37
IF0246:
	CALL	SA0ZN
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0247
	CALL	SA0RN
LOC37:
	MOV	AX,WA0RN
	MOV	BA0AA,AH
	MOV	BA0BB,AL
	MOV	AL,BA0AA
	MOV	BX,WA0PC
	MOV	BA0KS[BX],AL
	INC	WA0PC
	INC	BA0LL
	MOV	AL,BA0BB
	MOV	BX,WA0PC
	MOV	BA0KS[BX],AL
	INC	WA0PC
	INC	BA0LL
	MOV	AL,BA0CC
	MOV	BA0RC,AL
	MOV	AL,BA0RC
	CMP	AL,BA0CB
	MOV	AL,1
	JZ	$+4
	MOV	AL,0
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0248
	JMP	IF0249
IF0248:
	JMP	LOC33
IF0249:
	JMP	IF0250
IF0247:
	MOV	AL,BA0CE
	MOV	BX,WA0PC
	MOV	BA0KS[BX],AL
	INC	WA0PC
	INC	BA0LL
	MOV	AL,BA0CC
	MOV	BA0RC,AL
	JMP	LOC33
IF0250:
	JMP	XA0244
	RB	0-0
A0U245:	CMP	AL,BA0NL
	JZ	$+5
	JMP	A0U251
	MOV	AL,BA0LL
	MOV	BX,WA0PL
	MOV	BA0KS[BX],AL
	MOV	BX,WA0PC
	MOV	WA0PL,BX
	INC	WA0PC
	MOV	BA0LL,0
	JMP	XA0244
	RB	0-0
A0U251:	CMP	AL,BA0CD
	JZ	$+5
	JMP	A0U252
	MOV	AL,BA0LL
	CMP	AL,BA0C0
	MOV	AL,1
	JZ	$+4
	MOV	AL,0
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0253
	CALL	SA0RL
	MOV	AL,BA0NL
	MOV	BA0RC,AL
	DEC	WA0PC
	JMP	LOC33
	JMP	IF0254
IF0253:
	JMP	LOC35
IF0254:
	JMP	XA0244
	RB	0-0
A0U252:	CMP	AL,BA0XG
	JZ	$+5
	JMP	A0U255
	MOV	AL,BA0LL
	CMP	AL,BA0C0
	MOV	AL,1
	JZ	$+4
	MOV	AL,0
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0256
	CALL	SA0KG
	CALL	SA0RA
	MOV	AL,BA0C0
	MOV	BL,BA0PO
	MOV	BH,0
	MOV	BA0OS[BX],AL
	CALL	SA0ME
	MOV	BX,WA0AA
	SHL	BX,1
	MOV	AX,WA0MI[BX]
	MOV	WA0RN,AX
	MOV	AX,WA000
	CMP	AX,WA0RN
	MOV	AL,1
	JZ	$+4
	MOV	AL,0
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0257
	MOV	BX,WA0AA
	MOV	WA0RN,BX
	MOV	AL,BA0NL
	MOV	BX,WA0PC
	MOV	BA0KS[BX],AL
	JMP	IF0258
IF0257:
	MOV	AL,BA0RC
	MOV	BX,WA0PC
	MOV	BA0KS[BX],AL
IF0258:
	INC	WA0PC
	MOV	AX,WA0RN
	MOV	BA0AA,AH
	MOV	BA0BB,AL
	MOV	AL,BA0AA
	MOV	BX,WA0PC
	MOV	BA0KS[BX],AL
	INC	WA0PC
	MOV	AL,BA0BB
	MOV	BX,WA0PC
	MOV	BA0KS[BX],AL
	INC	WA0PC
	MOV	AL,BA0C3
	MOV	BA0LL,AL
	MOV	AL,BA0NL
	MOV	BA0RC,AL
	JMP	LOC33
	JMP	IF0259
IF0256:
	JMP	LOC35
IF0259:
	JMP	XA0244
	RB	0-0
A0U255:	CMP	AL,BA0EL
	JZ	$+5
	JMP	A0U260
	JMP	XA0244
	RB	0-0
A0U260:
LOC35:
	MOV	AL,BA0RC
	MOV	BX,WA0PC
	MOV	BA0KS[BX],AL
	INC	WA0PC
	INC	BA0LL
XA0244:
	JMP	TW0241
BW0241:
	DEC	WA0PC
	MOV	AL,BA0C1
	CMP	AL,BA0ER
	MOV	AL,1
	JNZ	$+4
	MOV	AL,0
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0261
	CALL	MSG
	DB	'CANT READ'
	CALL	MSG
	DB	' COMMANDS'
	CALL	SA0CR
	MOV	AL,1
	CALL	STOP
IF0261:
	MOV	DX, OFFSET BA0F1
	CALL	CLOSEIO
	MOV	WA0BK,2
	MOV	AL,2
	MOV	BX, OFFSET WA0BK
	CALL	ATTACH
	MOV	DX,OFFSET BA0F1
	MOV	BX,OFFSET BA0XR
	MOV	SI,OFFSET WA0BK
	CALL	OPENIO
	CALL	SA0CK
	MOV	WA0AA,0
TW0262:
	MOV	AX,WA0AA
	CMP	AX,WA0PC
	LAHF
	ROL	AH,1
	AND	AH,1
	MOV	BA0AA,AH
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	BW0262
	MOV	BX,WA0AA
	MOV	AL,BA0KS[BX]
	MOV	BA0LL,AL
	MOV	AX,WA0AA
	ADD	AX,WA001
	MOV	WA0BB,AX
	MOV	BX,WA0BB
	MOV	AL,BA0KS[BX]
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	CMP	AL,BA0NL
	MOV	AL,1
	JZ	$+4
	MOV	AL,0
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0263
	MOV	AL,BA0XG
	MOV	BX,WA0BB
	MOV	BA0KS[BX],AL
	INC	WA0BB
	MOV	BX,WA0BB
	MOV	AL,BA0KS[BX]
	MOV	BA0AA,AL
	INC	WA0BB
	MOV	BX,WA0BB
	MOV	AL,BA0KS[BX]
	MOV	BA0BB,AL
	MOV	AL,BA0BB
	MOV	AH,BA0AA
	MOV	WA0RN,AX
	MOV	BX,WA0RN
	MOV	AL,BA0MC[BX]
	MOV	BA0BB,AL
	MOV	AL,BA0C1
	CMP	AL,BA0BB
	MOV	AL,1
	JNZ	$+4
	MOV	AL,0
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0264
	MOV	AX,WA0RN
	SUB	AX,WA010
	MOV	WA0CC,AX
TW0265:
	MOV	AX,WA0CC
	CMP	AX,WA0RN
	LAHF
	ROL	AH,1
	AND	AH,1
	MOV	BA0AA,AH
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	BW0265
	MOV	BX,WA0CC
	MOV	AL,BA0MC[BX]
	MOV	BA0BB,AL
	MOV	AL,BA0BB
	CALL	WNX
	INC	WA0CC
	JMP	TW0265
BW0265:
	MOV	AL,BA0CB
	CALL	WNX
	CALL	MSG
	DB	'SUB UNDEF'
	CALL	SA0CR
IF0264:
	MOV	BX,WA0RN
	SHL	BX,1
	MOV	AX,WA0MI[BX]
	MOV	WA0CC,AX
	MOV	AX,WA0CC
	MOV	BA0AA,AH
	MOV	BA0BB,AL
	MOV	AL,BA0BB
	MOV	BX,WA0BB
	MOV	BA0KS[BX],AL
	DEC	WA0BB
	MOV	AL,BA0AA
	MOV	BX,WA0BB
	MOV	BA0KS[BX],AL
IF0263:
	MOV	BH,0
	MOV	BL,BA0LL
	MOV	WA0BB,BX
	MOV	AX,WA0AA
	ADD	AX,WA0BB
	MOV	WA0AA,AX
	MOV	AX,WA0AA
	ADD	AX,WA001
	MOV	WA0AA,AX
	JMP	TW0262
BW0262:
	CALL	SA0MP
	MOV	BX,WA0PC
	MOV	WA0AA,BX
	CALL	SA0PN
	CALL	MSG
	DB	'CMD BYTS '
	MOV	BX,WA0NL
	MOV	WA0AA,BX
	CALL	SA0PN
	CALL	MSG
	DB	'NUM LABS '
	MOV	BH,0
	MOV	BL,BA0PN
	MOV	WA0AA,BX
	CALL	SA0PN
	CALL	MSG
	DB	'SUBROUTIN'
	CALL	SA0CR
	RET
SA0RL:
TW0266:
	CALL	SA0KG
	CALL	SA0ZA
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0267
	JMP	LOC80
IF0267:
	CALL	SA0ZN
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0268
	JMP	LOC85
IF0268:
	MOV	AL,BA0NL
	CMP	AL,BA0CC
	MOV	AL,1
	JNZ	$+4
	MOV	AL,0
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	BW0266
	JMP	TW0266
BW0266:
	RET
LOC80:
	CALL	SA0RA
	MOV	AL,BA0C0
	MOV	BL,BA0PO
	MOV	BH,0
	MOV	BA0OS[BX],AL
	CALL	SA0ME
	MOV	AX,WA0PL
	MOV	BX,WA0AA
	SHL	BX,1
	MOV	WA0MI[BX],AX
	MOV	AL,BA0C1
	MOV	BX,WA0AA
	MOV	BA0MC[BX],AL
	INC	BA0PN
	RET
LOC85:
	INC	WA0NL
	CALL	SA0RN
	MOV	AX,WA0PL
	MOV	BX,WA0RN
	SHL	BX,1
	MOV	WA0LT[BX],AX
	RET
SA0RN:
	MOV	WA0RN,0
TW0269:
	MOV	AL,BA0CC
	SUB	AL,BA0X0
	MOV	BA0CC,AL
	MOV	BH,0
	MOV	BL,BA0CC
	MOV	WA0AA,BX
	MOV	AX,WA0RN
	IMUL	WA010
	MOV	WA0RN,AX
	MOV	AX,WA0RN
	ADD	AX,WA0AA
	MOV	WA0RN,AX
	CALL	SA0KG
	CALL	SA0ZN
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	BW0269
	JMP	TW0269
BW0269:
	RET
SA0ST:
	INC	BA0QI
	MOV	BL,BA0QI
	MOV	BH,0
	MOV	AL,BA0RI[BX]
	MOV	BA0CC,AL
	MOV	AL,BA0CC
	JMP	XA0271
	RB	0-3
A0U270:	CMP	AL,BA0XY
	JZ	$+5
	JMP	A0U272
	INC	BA0YP
	MOV	AL,BA0SD
	CMP	AL,BA0YP
	MOV	AL,0
	JNBE	$+4
	MOV	AL,1
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0273
	CALL	MSG
	DB	'Y OVERFLW'
	CALL	SA0CR
	MOV	AL,BA0SD
	MOV	BA0YP,AL
	MOV	BA0FL,0
IF0273:
	MOV	AX,WA0TU
	MOV	BL,BA0YP
	MOV	BH,0
	SHL	BX,1
	MOV	WA0YS[BX],AX
	JMP	XA0271
	RB	0-0
A0U272:	CMP	AL,BA0XZ
	JZ	$+5
	JMP	A0U274
	INC	BA0ZP
	MOV	AL,BA0SD
	CMP	AL,BA0ZP
	MOV	AL,0
	JNBE	$+4
	MOV	AL,1
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0275
	CALL	MSG
	DB	'Z OVERFLW'
	CALL	SA0CR
	MOV	AL,BA0SD
	MOV	BA0ZP,AL
	MOV	BA0FL,0
IF0275:
	MOV	AX,WA0TU
	MOV	BL,BA0ZP
	MOV	BH,0
	SHL	BX,1
	MOV	WA0ZS[BX],AX
	JMP	XA0271
	RB	0-0
A0U274:	CMP	AL,BA0CP
	JZ	$+5
	JMP	A0U276
	MOV	BL,BA0YP
	MOV	BH,0
	SHL	BX,1
	MOV	AX,WA0YS[BX]
	MOV	WA0AA,AX
	MOV	AX,WA0AA
	ADD	AX,WA0TU
	MOV	WA0AA,AX
	MOV	AX,WA0AA
	MOV	BL,BA0YP
	MOV	BH,0
	SHL	BX,1
	MOV	WA0YS[BX],AX
	JMP	XA0271
	RB	0-0
A0U276:	CMP	AL,BA0CM
	JZ	$+5
	JMP	A0U277
	MOV	BL,BA0YP
	MOV	BH,0
	SHL	BX,1
	MOV	AX,WA0YS[BX]
	MOV	WA0AA,AX
	MOV	AX,WA0AA
	SUB	AX,WA0TU
	MOV	WA0AA,AX
	MOV	AX,WA0AA
	MOV	BL,BA0YP
	MOV	BH,0
	SHL	BX,1
	MOV	WA0YS[BX],AX
	JMP	XA0271
	RB	0-0
A0U277:	CMP	AL,BA0CS
	JZ	$+5
	JMP	A0U278
	MOV	BL,BA0YP
	MOV	BH,0
	SHL	BX,1
	MOV	AX,WA0YS[BX]
	MOV	WA0AA,AX
	MOV	AX,WA0AA
	IMUL	WA0TU
	MOV	WA0AA,AX
	MOV	AX,WA0AA
	MOV	BL,BA0YP
	MOV	BH,0
	SHL	BX,1
	MOV	WA0YS[BX],AX
	JMP	XA0271
	RB	0-0
A0U278:	CMP	AL,BA0CG
	JZ	$+5
	JMP	A0U279
	MOV	BL,BA0YP
	MOV	BH,0
	SHL	BX,1
	MOV	AX,WA0YS[BX]
	MOV	WA0AA,AX
	MOV	AX,WA0AA
	CMP	AX,WA0TU
	LAHF
	ROL	AH,1
	AND	AH,1
	MOV	BA0AA,AH
LOC12:
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0280
	MOV	BA0FL,1
	JMP	IF0281
IF0280:
	MOV	BA0FL,0
IF0281:
	CALL	SA0PY
	JMP	XA0271
	RB	0-0
A0U279:	CMP	AL,BA0CL
	JZ	$+5
	JMP	A0U282
	MOV	BL,BA0YP
	MOV	BH,0
	SHL	BX,1
	MOV	AX,WA0YS[BX]
	MOV	WA0AA,AX
	MOV	AX,WA0TU
	CMP	AX,WA0AA
	LAHF
	ROL	AH,1
	AND	AH,1
	MOV	BA0AA,AH
	JMP	LOC12
	JMP	XA0271
	RB	0-0
A0U282:	CMP	AL,BA0CU
	JZ	$+5
	JMP	A0U283
	MOV	BL,BA0YP
	MOV	BH,0
	SHL	BX,1
	MOV	AX,WA0YS[BX]
	MOV	WA0AA,AX
	MOV	AX,WA0AA
	CMP	AX,WA0TU
	MOV	AL,1
	JZ	$+4
	MOV	AL,0
	MOV	BA0AA,AL
	JMP	LOC12
	JMP	XA0271
	RB	0-0
A0U283:	CMP	AL,BA0XI
	JZ	$+5
	JMP	A0U284
	INC	BA0QI
	MOV	BL,BA0QI
	MOV	BH,0
	MOV	AL,BA0RI[BX]
	MOV	BA0DD,AL
	MOV	BX,WA0TU
	MOV	WA0BB,BX
	INC	BA0QI
	CALL	SA0FT
	MOV	AL,BA0DD
	MOV	BA0CC,AL
	CALL	SA0ZN
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0285
	MOV	AL,BA0CC
	SUB	AL,BA0X0
	MOV	BA0BB,AL
	JMP	IF0286
IF0285:
LOC13:
	CALL	MSG
	DB	'BAD INDIR'
	CALL	MSG
	DB	'ECT INDEX'
	CALL	SA0CR
	MOV	BA0BB,0
IF0286:
	MOV	AL,BA0BB
	CMP	AL,BA0MK
	LAHF
	AND	AH,1
	MOV	BA0AA,AH
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0287
	MOV	BH,0
	MOV	BL,BA0BB
	MOV	WA0AA,BX
	MOV	AX,WA0TU
	ADD	AX,WA0AA
	MOV	WA0AA,AX
	MOV	AX,WA0BB
	MOV	BX,WA0AA
	SHL	BX,1
	MOV	WA0MI[BX],AX
	RET
	JMP	IF0288
IF0287:
	MOV	AL,BA0BB
	SUB	AL,BA0MK
	MOV	BA0BB,AL
	MOV	AL,BA0BB
	CMP	AL,BA0MK
	LAHF
	AND	AH,1
	MOV	BA0AA,AH
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0289
	MOV	BH,0
	MOV	BL,BA0BB
	MOV	WA0AA,BX
	MOV	AX,WA0AA
	ADD	AX,WA0TU
	MOV	WA0AA,AX
	MOV	AL,BYTE PTR WA0BB
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	MOV	BX,WA0AA
	MOV	BA0MC[BX],AL
	JMP	IF0290
IF0289:
	JMP	LOC13
IF0290:
IF0288:
	JMP	XA0271
	RB	0-0
A0U284:	CMP	AL,BA0XC
	JZ	$+5
	JMP	A0U291
	MOV	BX,WA0TU
	MOV	WA0AA,BX
	CALL	SA0WN
	JMP	XA0271
	RB	0-0
A0U291:	CMP	AL,BA0XL
	JZ	$+5
	JMP	A0U292
	MOV	AL,BYTE PTR WA0TU
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	MOV	BL,BA0PB
	MOV	BH,0
	MOV	BA0BO[BX],AL
	INC	BA0PB
	JMP	XA0271
	RB	0-0
A0U292:	CMP	AL,BA0XA
	JZ	$+5
	JMP	A0U293
	MOV	AL,BYTE PTR WA0TU
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	MOV	BL,BA0PO
	MOV	BH,0
	MOV	BA0OS[BX],AL
	INC	BA0PO
	MOV	AL,BA0C0
	MOV	BL,BA0PO
	MOV	BH,0
	MOV	BA0OS[BX],AL
	JMP	XA0271
	RB	0-0
A0U293:	CMP	AL,BA0XB
	JZ	$+5
	JMP	A0U294
	MOV	AL,BYTE PTR WA0TU
	MOV	BA0PO,AL
	MOV	AL,BA0C0
	MOV	BL,BA0PO
	MOV	BH,0
	MOV	BA0OS[BX],AL
	JMP	XA0271
	RB	0-0
A0U294:	CMP	AL,BA0XG
	JZ	$+5
	JMP	A0U295
	MOV	BX,WA0TU
	MOV	WA0UU,BX
	JMP	XA0271
	RB	0-0
A0U295:	CMP	AL,BA0XU
	JZ	$+5
	JMP	A0U296
	MOV	BX,WA0PT
	MOV	WA0AA,BX
LOC39:
	INC	WA0AA
	MOV	AX,WA0TU
	MOV	BX,WA0AA
	SHL	BX,1
	MOV	WA0ST[BX],AX
	JMP	XA0271
	RB	0-0
A0U296:	CMP	AL,BA0XV
	JZ	$+5
	JMP	A0U297
	MOV	BX,WA0PT
	MOV	WA0AA,BX
	INC	WA0AA
	JMP	LOC39
	JMP	XA0271
	RB	0-0
A0U297:	CMP	AL,BA0XD
	JZ	$+5
	JMP	A0U298
	JMP	XA0271
	RB	0-0
A0U298:	CMP	AL,BA0XH
	JZ	$+5
	JMP	A0U299
	MOV	AL,BYTE PTR WA0TU
	MOV	BA0AA,AL
	MOV	BH,0
	MOV	BL,BA0AA
	MOV	WA0TU,BX
	MOV	AX,WA0TU
	MOV	CX,WA016
	CWD
	JCXZ	$+4
	IDIV	CX
	MOV	WA0AA,AX
	MOV	AX,WA0AA
	IMUL	WA016
	MOV	WA0BB,AX
	MOV	AX,WA0TU
	SUB	AX,WA0BB
	MOV	WA0BB,AX
	MOV	AL,BYTE PTR WA0AA
	MOV	BA0CC,AL
	CALL	SA0WH
	MOV	AL,BYTE PTR WA0BB
	MOV	BA0CC,AL
	CALL	SA0WH
	JMP	XA0271
	RB	0-0
A0U299:
	MOV	BL,BA0QI
	MOV	BH,0
	MOV	AL,BA0RI[BX]
	MOV	BA0CC,AL
	CALL	SA0ZN
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0300
	MOV	AL,BA0CC
	SUB	AL,BA0X0
	MOV	BA0AA,AL
	JMP	IF0301
IF0300:
	CALL	MSG
	DB	'ILLEGAL S'
	CALL	MSG
	DB	'TORE ATMP'
	CALL	SA0CR
	MOV	BA0AA,0
IF0301:
	MOV	AX,WA0TU
	MOV	BL,BA0AA
	MOV	BH,0
	SHL	BX,1
	MOV	WA0PR[BX],AX
XA0271:
	RET
SA0WH:
	MOV	AL,BA0CC
	CMP	AL,BA0C9
	MOV	AL,0
	JNBE	$+4
	MOV	AL,1
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0302
	MOV	AL,BA0X0
	ADD	AL,BA0CC
	MOV	BA0CC,AL
	JMP	IF0303
IF0302:
	MOV	AL,BA0XA
	ADD	AL,BA0CC
	MOV	BA0CC,AL
	MOV	AL,BA0CC
	SUB	AL,BA0C9
	MOV	BA0CC,AL
	MOV	AL,BA0CC
	SUB	AL,BA0C1
	MOV	BA0CC,AL
IF0303:
	MOV	AL,BA0CC
	MOV	BL,BA0PB
	MOV	BH,0
	MOV	BA0BO[BX],AL
	INC	BA0PB
	RET
SA0WN:
	CALL	SA0DS
TW0304:
	MOV	BH,0
	MOV	BL,BA0ND
	MOV	WA0BB,BX
	MOV	AX,WA000
	CMP	AX,WA0BB
	LAHF
	ROL	AH,1
	AND	AH,1
	MOV	BA0AA,AH
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	BW0304
	DEC	BA0ND
	MOV	BL,BA0ND
	MOV	BH,0
	MOV	AL,BA0DS[BX]
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	MOV	BL,BA0PB
	MOV	BH,0
	MOV	BA0BO[BX],AL
	INC	BA0PB
	JMP	TW0304
BW0304:
	RET
SA0ZA:
	MOV	AL,BA0CC
	SUB	AL,BA0XA
	MOV	BA0AA,AL
	MOV	AL,BA0XZ
	SUB	AL,BA0CC
	MOV	BA0BB,AL
	MOV	AL,BA0AA
	CMP	AL,BA0CV
	MOV	AL,0
	JNBE	$+4
	MOV	AL,1
	MOV	BA0AA,AL
	MOV	AL,BA0BB
	CMP	AL,BA0CV
	MOV	AL,0
	JNBE	$+4
	MOV	AL,1
	MOV	BA0BB,AL
	MOV	AL,BA0AA
	AND	AL,BA0BB
	MOV	BA0AA,AL
	RET
SA0ZH:
	MOV	AL,BA0X0
	CMP	AL,BA0CC
	MOV	AL,0
	JNBE	$+4
	MOV	AL,1
	MOV	BA0AA,AL
	MOV	AL,BA0CC
	CMP	AL,BA0X9
	MOV	AL,0
	JNBE	$+4
	MOV	AL,1
	MOV	BA0BB,AL
	MOV	AL,BA0AA
	AND	AL,BA0BB
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0305
	MOV	AL,BA0CC
	SUB	AL,BA0X0
	MOV	BA0CC,AL
	RET
IF0305:
	MOV	AL,BA0XA
	CMP	AL,BA0CC
	MOV	AL,0
	JNBE	$+4
	MOV	AL,1
	MOV	BA0AA,AL
	MOV	AL,BA0CC
	CMP	AL,BA0XF
	MOV	AL,0
	JNBE	$+4
	MOV	AL,1
	MOV	BA0BB,AL
	MOV	AL,BA0AA
	AND	AL,BA0BB
	MOV	BA0AA,AL
	MOV	AL,BA0AA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0306
	MOV	AL,BA0CC
	SUB	AL,BA0XA
	MOV	BA0CC,AL
	MOV	BA0BB,10
	MOV	AL,BA0BB
	ADD	AL,BA0CC
	MOV	BA0CC,AL
	RET
IF0306:
	RET
SA0ZN:
	MOV	AL,BA0CC
	SUB	AL,BA0X0
	MOV	BA0AA,AL
	MOV	AL,BA0X9
	SUB	AL,BA0CC
	MOV	BA0BB,AL
	MOV	AL,BA0AA
	CMP	AL,BA0C9
	MOV	AL,0
	JNBE	$+4
	MOV	AL,1
	MOV	BA0AA,AL
	MOV	AL,BA0BB
	CMP	AL,BA0C9
	MOV	AL,0
	JNBE	$+4
	MOV	AL,1
	MOV	BA0BB,AL
	MOV	AL,BA0AA
	AND	AL,BA0BB
	MOV	BA0AA,AL
	RET
SA0ZW:
	MOV	AL,BA0CC
	CMP	AL,BA0CB
	MOV	AL,1
	JZ	$+4
	MOV	AL,0
	MOV	BA0AA,AL
	MOV	AL,BA0CC
	CMP	AL,BA0CT
	MOV	AL,1
	JZ	$+4
	MOV	AL,0
	MOV	BA0BB,AL
	MOV	AL,BA0AA
	OR	AL,BA0BB
	MOV	BA0AA,AL
	MOV	AL,BA0CC
	CMP	AL,BA0EL
	MOV	AL,1
	JZ	$+4
	MOV	AL,0
	MOV	BA0BB,AL
	MOV	AL,BA0AA
	OR	AL,BA0BB
	MOV	BA0AA,AL
	MOV	AL,BA0CC
	CMP	AL,BA0NL
	MOV	AL,1
	JZ	$+4
	MOV	AL,0
	MOV	BA0BB,AL
	MOV	AL,BA0AA
	OR	AL,BA0BB
	MOV	BA0AA,AL
	RET
SA0KG:
	MOV	BX, OFFSET BA0CC
	MOV	DX, OFFSET BA0F1
	CALL	BREAD
	MOV	AL,BA0CC
	CMP	AL,BA0EL
	MOV	AL,1
	JZ	$+4
	MOV	AL,0
	MOV	BA0KA,AL
	MOV	AL,BA0KA
	TEST	AL,AL
	JNZ	$+5
	JMP	IF0307
	MOV	BX, OFFSET BA0CC
	MOV	DX, OFFSET BA0F1
	CALL	BREAD
IF0307:
	RET
	END	START
